﻿#pragma once

#include "../MonsterObject.h"
#include "../../MirDatabase/MonsterInfo.h"
#include <vector>
#include <any>

using namespace Server::MirDatabase;
namespace S = ServerPackets;
using namespace Server::MirEnvir;

namespace Server::MirObjects::Monsters
{
    class TurtleKing : public MonsterObject
    {
    public:
        unsigned char AttackRange = 7;
        unsigned char CloseRange = 2;

    private:
        unsigned char _stage = 5;

    protected:
        TurtleKing(MonsterInfo *info);

        bool InAttackRange() override;

        void ProcessAI() override;
        void Attack() override;

        void CompleteAttack(std::vector<std::any> &data) override;

        void CompleteRangeAttack(std::vector<std::any> &data) override;

    private:
        void SpawnSlaves();
    };
}
